//
//  MotionBlur.h
//  Ray Tracer
//
//  Created by Kaila, Ashish on 3/21/13.
//  Copyright (c) 2013 Kaila, Ashish. All rights reserved.
//

#ifndef __Ray_Tracer__MotionBlur__
#define __Ray_Tracer__MotionBlur__

class Raytracer;
struct SceneDagNode;

#include "Utils/util.h"
#include <stack>

class MotionBlur
{
public:
    
    // Constructs a motion blur for a scene object
    // sceneObject - scene object to apply motion blur to
    // motionVector - direction and magnitude of motion vector
    MotionBlur(SceneDagNode* sceneObject,
               Vector3D motionVector);
    
    // Starts motion blur for the scene object
    void startMotionBlur();
    
    // Resets the motion blur for the scene object
    void endMotionBlur();
    
private:
    
    SceneDagNode* _sceneObject;
    Vector3D _motionVector;
    Vector3D _transformation;
};

#endif /* defined(__Ray_Tracer__MotionBlur__) */
